home *** CD-ROM | disk | FTP | other *** search
/ Aminet 40 / Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso / Aminet / util / sys / 2b_mv_os2_src.lha / MultiViewPrefs Src / MVPrefs.e < prev    next >
Encoding:
Text File  |  1999-02-21  |  29.4 KB  |  1,220 lines

  1. /*
  2.  * 25.11.98
  3.  *
  4.  *  Posortowane pozycje w Add FileID - dodatkowa lista fidtemp z niesortowana
  5.  *  lista w ktorej szukam numerka.
  6.  *  Poprawiona geticon - teraz xDEFxxx = defnode a reszta = dtnode
  7.  *  Dodane blokowanie gîównego okna w kaûdej sytuacji
  8.  *  Dodane sprawdzanie czy jest juû taka pozycja
  9.  *
  10.  * 26.01.99
  11.  *
  12.  *  Przekompilowane z nowâ wersjâ dclistview - dodane poruszanie sië po listach
  13.  *  via Up/Down i ALT-Up/ALT-Down
  14.  *
  15.  * 20.02.99
  16.  *
  17.  *  Zmieniona procka getfile() :
  18.  *  file_feq() -> filename := file_req()
  19.  *  W PROC geticon() zmienione sprawdzanie SHOWINFO - teraz dziaîa takûe na (SHOWINFO)
  20.  *
  21.  */
  22.  
  23. OPT OSVERSION=37,PREPROCESS,LARGE
  24.  
  25. ->#define DEBUG
  26.  
  27. MODULE 'tools/EasyGUI',        'tools/exceptions',
  28.        'libraries/gadtools',   'fileid',
  29.        'intuition/intuition',  'intuition/screens',
  30.        'exec/nodes',           'exec/lists',
  31.        'icon',                 'dos/var',
  32.        'asl',                  'libraries/asl',
  33.        'workbench/workbench',  'utility/tagitem',
  34.        'easyplugins/register', 'easyplugins/dclistview',
  35.        'afc/stringnode',       'afc/dirlist',
  36.        '*rawkey'
  37.        
  38.  
  39. /*
  40. PROC ..Definicje
  41.  */
  42.  
  43. ENUM PAGE_FILEID,PAGE_EXT,PAGE_DEF,PAGE_DT
  44. ENUM ERR_NONE,ERR_NO_ASL,ERR_ALLOC,ERR_MAKE,ERR_QUIT,
  45.      ERR_NO_UTILLIB,ERR_NO_FILEID,ERR_NO_ICONLIB
  46.  
  47. DEF gh      : PTR TO guihandle,     -> Gîówne okno
  48.     ghadd   : PTR TO guihandle,     -> Extensions Add
  49.     reg     : PTR TO register_plugin,
  50.     req     : PTR TO filerequester,
  51.  
  52.     fidlist : PTR TO dclistview,    -> config
  53.     deflist : PTR TO dclistview,    -> defaultowe
  54.     extlist : PTR TO dclistview,    -> extensions
  55.     dtlist  : PTR TO dclistview,    -> datatypy
  56.  
  57.     newicon : PTR TO stringnode,    -> tooltypy NI
  58.     fidnode : PTR TO stringnode,    -> FileID typy
  59.     fidsel  : PTR TO stringnode,    -> FileID Add - sortowane
  60.     fidtemp : PTR TO stringnode,    -> FileID Add - pomocnicza
  61.     extnode : PTR TO stringnode,    -> rozszerzenia
  62.     defnode : PTR TO stringnode,    -> defaultowe
  63.     defsel  : PTR TO stringnode,    -> defaultowe Add
  64.     dtnode  : PTR TO stringnode,    -> datatypy
  65.     dtsel   : PTR TO dirlist,       -> datatypy add
  66.  
  67.     rawkey  : PTR TO rawkey
  68.  
  69. DEF guilist : PTR TO LONG,          -> GUI glowne - DO zakladek
  70.     cmdstr  [256] : STRING,
  71.     txtstr  [256] : STRING,
  72.     filename[256] : STRING,
  73.     iconname[256] : STRING,
  74.     nochanged = TRUE,
  75.     showinfo  = TRUE,
  76.     isnitt    = FALSE,
  77.     aslok     = NIL,
  78.     actgui    = PAGE_FILEID,
  79.     current   = -1,
  80.     temp
  81.  
  82. -> Gadgety
  83.  
  84. DEF listgad1, listgad2, listgad3, listgad4,
  85.     strgad1,  strgad2,  strgad3,  strgad4,
  86.     delgad1,  delgad2,  delgad3,  delgad4,
  87.     txtgad1,            txtgad3,
  88.     savgad1,  savgad2,  savgad3,  savgad4,
  89.     getgad1,  getgad2,  getgad3,  getgad4,
  90.     datgad1,  datgad2,  datgad3,  datgad4,
  91.     extstr
  92.  
  93. #ifdef DEBUG
  94.  DEF str[256] : STRING
  95. #endif
  96.  
  97. /*
  98. ENDPROC
  99. */
  100.  
  101. PROC main() HANDLE
  102.  
  103.   DEF res,
  104.       top,
  105.       scr : PTR TO screen
  106.  
  107.   VOID '$VER: MultiView 4.8 (20.02.1999) BLABLA PRODUCT'
  108.  
  109.   setup()
  110.  
  111.   scr := LockPubScreen(NIL)
  112.  
  113.   guilist := [
  114.     [ROWS,
  115.       [PLUGIN,{gad_tabs},reg],
  116.       [PLUGIN,NIL,rawkey],
  117.       [ROWS,
  118.         listgad1 := [DCLIST,{gad_listv},fidlist,TRUE],
  119.         txtgad1  := [TEXT,txtstr,'Type : ',TRUE,10],
  120.         [COLS,
  121.           [SBUTTON,{gad_add_fileid},'_Add',NIL,"a"],
  122.           delgad1 := [SBUTTON,{gad_del},'_Del',PAGE_FILEID,"d",NIL,TRUE]
  123.         ],
  124.         [BAR],
  125.         [COLS,
  126.           strgad1 := [STR,{gad_str},'_Command :',cmdstr,255,4,FALSE,PAGE_FILEID,"c",NIL,FALSE],
  127.           datgad1 := [BUTTON,{gad_datatype},'DT',PAGE_FILEID,NIL,NIL,FALSE],
  128.           getgad1 := [BUTTON,{gad_getfile},'_Get...',PAGE_FILEID,"g",NIL,FALSE]
  129.         ],
  130.         [BAR],
  131.         [EQCOLS,
  132.           savgad1 := [SBUTTON,{gad_save},'_Save',NIL,"s",NIL,TRUE],
  133.           [SBUTTON,{gad_quit},'_Quit',NIL,"q"]
  134.         ]
  135.       ]
  136.     ],
  137.     [ROWS,
  138.       [PLUGIN,{gad_tabs},reg],
  139.       [PLUGIN,NIL,rawkey],
  140.       [ROWS,
  141.         listgad2 := [DCLIST,{gad_listv},extlist,TRUE],
  142.         [COLS,
  143.           [SBUTTON,{gad_add_ext},'_Add',NIL,"a"],
  144.           delgad2 := [SBUTTON,{gad_del},'_Del',PAGE_EXT,"d",NIL,TRUE]
  145.         ],
  146.         [BAR],
  147.         [COLS,
  148.           strgad2 := [STR,{gad_str},'_Command :',cmdstr,255,4,FALSE,PAGE_EXT,"c",NIL,FALSE],
  149.           datgad2 := [BUTTON,{gad_datatype},'DT',PAGE_EXT,NIL,NIL,FALSE],
  150.           getgad2 := [BUTTON,{gad_getfile},'_Get...',PAGE_EXT,"g",NIL,FALSE]
  151.         ],
  152.         [BAR],
  153.         [EQCOLS,
  154.           savgad2 := [SBUTTON,{gad_save},'_Save',NIL,"s",NIL,TRUE],
  155.           [SBUTTON,{gad_quit},'_Quit',NIL,"q"]
  156.         ]
  157.       ]
  158.     ],
  159.     [ROWS,
  160.       [PLUGIN,{gad_tabs},reg],
  161.       [PLUGIN,NIL,rawkey],
  162.       [ROWS,
  163.         listgad3 := [DCLIST,{gad_listv},deflist,TRUE],
  164.         txtgad3  := [TEXT,txtstr,'Type : ',TRUE,10],
  165.         [COLS,
  166.           [SBUTTON,{gad_add_def},'_Add',NIL,"a"],
  167.           delgad3 := [SBUTTON,{gad_del},'_Del',PAGE_DEF,"d",NIL,TRUE]
  168.         ],
  169.         [BAR],
  170.         [COLS,
  171.           strgad3 := [STR,{gad_str},'_Command :',cmdstr,255,4,FALSE,PAGE_DEF,"c",NIL,FALSE],
  172.           datgad3 := [BUTTON,{gad_datatype},'DT',PAGE_DEF,NIL,NIL,FALSE],
  173.           getgad3 := [BUTTON,{gad_getfile},'_Get...',PAGE_DEF,"g",NIL,FALSE]
  174.         ],
  175.         [BAR],
  176.         [EQCOLS,
  177.           savgad3 := [SBUTTON,{gad_save},'_Save',NIL,"s",NIL,TRUE],
  178.           [SBUTTON,{gad_quit},'_Quit',NIL,"q"]
  179.         ]
  180.       ]
  181.     ],
  182.     [ROWS,
  183.       [PLUGIN,{gad_tabs},reg],
  184.       [PLUGIN,NIL,rawkey],
  185.       [ROWS,
  186.         listgad4 := [DCLIST,{gad_listv},dtlist,TRUE],
  187.         [COLS,
  188.           [SBUTTON,{gad_add_dt},'_Add',NIL,"a"],
  189.           delgad4 := [SBUTTON,{gad_del},'_Del',PAGE_DT,"d",NIL,TRUE]
  190.         ],
  191.         [BAR],
  192.         [COLS,
  193.           strgad4 := [STR,{gad_str},'_Command :',cmdstr,255,4,FALSE,PAGE_DT,"c",NIL,FALSE],
  194.           datgad4 := [BUTTON,{gad_datatype},'DT',PAGE_DT,NIL,NIL,FALSE],
  195.           getgad4 := [BUTTON,{gad_getfile},'_Get...',PAGE_DEF,"g",NIL,FALSE]
  196.         ],
  197.         [BAR],
  198.         [EQCOLS,
  199.           savgad4 := [SBUTTON,{gad_save},'_Save',NIL,"s",NIL,TRUE],
  200.           [SBUTTON,{gad_quit},'_Quit',NIL,"q"]
  201.         ]
  202.       ]
  203.     ]
  204.   ]
  205.  
  206.   res := CHECKIT
  207.   IF showinfo THEN res := res + CHECKED
  208.  
  209.   guiinitA('MultiView Preferences',guilist[],[EG_GHVAR,{gh},
  210.        EG_CLOSE,{gad_quit},
  211.        EG_LEFT,0,
  212.        EG_TOP,scr.barheight + 1,
  213.        EG_MENU,
  214.         [NM_TITLE,0,'Project',    0 ,0,0,0,
  215.          NM_ITEM, 0,'Open...',   'o',aslok,0,{men_open},
  216.          NM_ITEM, 0,'Save',      's',0,0,{gad_save},
  217.          NM_ITEM, 0,'Save As...','S',aslok,0,{men_saveas},
  218.          NM_ITEM, 0,NM_BARLABEL,  0 ,0,0,0,
  219.          NM_ITEM, 0,'About',     '?',0,0,{about},
  220.          NM_ITEM, 0,NM_BARLABEL,  0 ,0,0,0,
  221.          NM_ITEM, 0,'Quit',      'q',0,0,{gad_quit},
  222.          NM_TITLE,0,'Settings',   0 ,0,0,0,
  223.          NM_ITEM, 0,'Show Info', 'i',res,0,{men_info},
  224.          NM_ITEM, 0,NM_BARLABEL,  0 ,0,0,0,
  225.          NM_ITEM, 0,'Sort lists','t',0,0,{men_sort},
  226.          NM_END,  0,0,            0,0,0,0]:newmenu,NIL
  227.  
  228.    ]
  229.   )
  230.  
  231.   SetWindowTitles(gh.wnd,'MultiView Preferences','MultiView Preferences 4.8 (20.02.1999) by Szczepan/BlaBla -> BLABLA PRODUCT')
  232.  
  233.   IF aslok = 16 THEN setdisabled(gh,getgad1,TRUE)
  234.   nodel()
  235.   res := -1
  236.  
  237.   WHILE res < 0
  238.     Wait(gh.sig)
  239.     res := guimessage(gh)
  240.   ENDWHILE
  241.  
  242. EXCEPT DO
  243.  
  244.   cleangui(gh)
  245.   exit()
  246.  
  247.   IF scr THEN UnlockPubScreen(NIL,scr)
  248.  
  249.   IF exception
  250.     SELECT exception
  251.       CASE ERR_NO_UTILLIB
  252.         WriteF('Error : Cannot open utility.library !!!\n')
  253.       CASE ERR_NO_FILEID
  254.         WriteF('Error : Cannot open FileID.library !!!\n')
  255.       CASE ERR_NO_ICONLIB
  256.         WriteF('Error : Cannot open icon.library !!!\n')
  257.       CASE ERR_QUIT
  258.         CleanUp(NIL)
  259.       DEFAULT
  260.         WriteF('Error : \d\n',exception)
  261.     ENDSELECT
  262.   ENDIF
  263.  
  264. ENDPROC
  265.  
  266. PROC about()
  267.  
  268.   DEF ok
  269.  
  270.   blockwin(gh)
  271.   ok := EasyRequestArgs(NIL,[20,NIL,'MultiView Preferences',
  272.   'MultiView Preferences 4.8 (20.02.99)\nby Szczepan/BlaBla.\n\nThis is BLABLA PRODUCT !\n(see docs FOR more info)\n\nThis program is GiftWare\n\nBugreports are very welcome.\n\nE-mail : szczepan@student.man.bialystok.pl\nWWW : http://student.man.bialystok.pl/szczepan/','Ok|More Info'],NIL,NIL)
  273.   IF ok = 0 THEN EasyRequestArgs(NIL,[20,NIL,'MultiView Preferences','Used  modules :\n\n EasyGUI AND plugins : \n\n DCListview PLUGIN  by Victor Ducedre\n Register PLUGIN by Ralph Wermke\n RawKey PLUGIN by Fabio Rotondo\n\n AFC classes : \n\n StringNode AND DirList by Fabio Rotondo\n \n Source size : 30135b','Ok'],NIL,NIL)
  274.   unblockwin(gh)
  275.  
  276. ENDPROC
  277. PROC setup()
  278.  
  279.   req := NIL
  280.  
  281.   IF (utilitybase := OpenLibrary('utility.library',37)) = NIL THEN Raise(ERR_NO_UTILLIB)
  282.   IF (iconbase    := OpenLibrary('icon.library'   ,37)) = NIL THEN Raise(ERR_NO_ICONLIB)
  283.   IF (fileidbase  := OpenLibrary('FileID.library' ,2 )) = NIL THEN Raise(ERR_NO_FILEID)
  284.   IF aslbase  := OpenLibrary('asl.library',37)
  285.     aslok := NIL
  286.     req   := AllocAslRequest(ASL_FILEREQUEST,
  287.                             [ASL_HAIL,'Select File...',
  288.                              NIL])
  289.   ELSE
  290.     aslok := 16
  291.   ENDIF
  292.  
  293.   NEW reg.register([PLA_Register_Titles,['FileID types','Extensions','DEFAULT Actions','Datatypes'],NIL])
  294.   NEW fidnode.stringnode()
  295.   NEW fidsel.stringnode()
  296.   NEW newicon.stringnode()
  297.   NEW defnode.stringnode()
  298.   NEW extnode.stringnode()
  299.   NEW defsel.stringnode()
  300.   NEW dtnode.stringnode()
  301.   NEW dtsel.dirlist()
  302.  
  303.   NEW fidtemp.stringnode()
  304.  
  305.   StrCopy(iconname,'SYS:Utilities/MultiView')
  306.   geticon(iconname)
  307.   StrCopy(cmdstr,'')
  308.  
  309.   NEW fidlist.dclistview([DCLV_LABEL,'Your Configuration',
  310.                           DCLV_USEARROWS,TRUE,
  311.                           DCLV_RELX,40,
  312.                           DCLV_RELY,10,
  313.                           DCLV_LIST,fidnode.addr(),
  314.                           DCLV_CURRENT,-1,NIL,NIL])
  315.  
  316.   NEW extlist.dclistview([DCLV_LABEL,'Extensions defined',
  317.                           DCLV_USEARROWS,TRUE,
  318.                           DCLV_RELX,40,
  319.                           DCLV_RELY,10,
  320.                           DCLV_LIST,extnode.addr(),
  321.                           DCLV_CURRENT,-1,NIL,NIL])
  322.  
  323.   NEW deflist.dclistview([DCLV_LABEL,'Default Actions',
  324.                           DCLV_USEARROWS,TRUE,
  325.                           DCLV_RELX,40,
  326.                           DCLV_RELY,10,
  327.                           DCLV_LIST,defnode.addr(),
  328.                           DCLV_CURRENT,-1,NIL,NIL])
  329.  
  330.   NEW dtlist.dclistview([DCLV_LABEL,'Datatypes',
  331.                          DCLV_USEARROWS,TRUE,
  332.                          DCLV_RELX,40,
  333.                          DCLV_RELY,10,
  334.                          DCLV_LIST,dtnode.addr(),
  335.                          DCLV_CURRENT,-1,NIL,NIL])
  336.  
  337.   NEW rawkey.init()
  338.  
  339.   rawkey.setattrs([PLA_KEY_LEFT,{key_left},
  340.                    PLA_KEY_RIGHT,{key_right},
  341.                  NIL, NIL])
  342.  
  343. ENDPROC
  344. PROC exit()
  345.  
  346.   END fidtemp
  347.  
  348.   END reg
  349.   END fidlist
  350.   END fidnode
  351.   END fidsel
  352.   END newicon
  353.   END defnode
  354.   END extnode
  355.   END deflist
  356.   END extlist
  357.   END defsel
  358.   END rawkey
  359.   END dtlist
  360.   END dtnode
  361.  
  362.   IF req         THEN FreeAslRequest(req)
  363.   IF aslbase     THEN CloseLibrary(aslbase)
  364.   IF iconbase    THEN CloseLibrary(iconbase)
  365.   IF fileidbase  THEN CloseLibrary(fileidbase)
  366.   IF utilitybase THEN CloseLibrary(utilitybase)
  367.  
  368. ENDPROC
  369.  
  370. PROC gad_add_dt()
  371.  
  372. -> Dodaj DataType
  373.  
  374.   blockwin(gh)
  375.   IF dtsel.numitems() = NIL
  376.     dtsel.setdir('DEVS:Datatypes')
  377.     dtsel.read(FALSE,TRUE,'~(#?.info)')
  378.     dtsel.sort()
  379.   ENDIF
  380.  
  381.   easyguiA('Select FileType',
  382.     [LISTV,{gad_select_dt},'Available DataTypes',20,10,dtsel.addr(),FALSE,NIL,NIL]
  383.   )
  384.   unblockwin(gh)
  385.  
  386.  
  387. ENDPROC
  388. PROC gad_add_ext()
  389.  
  390. -> dodaj rozszerzenie / przedrostek
  391.  
  392.   DEF res = -1
  393.  
  394.   blockwin(gh)
  395.   StrCopy(cmdstr,'')
  396.   guiinitA('Adding extensions',
  397.     extstr:= [STR,{gad_str_ext},'_Add :',cmdstr,10,10,FALSE,NIL,"a",NIL,FALSE],
  398.     [EG_GHVAR,{ghadd},NIL]
  399.     )
  400.   ActivateGadget(findgadget(ghadd,extstr),ghadd.wnd,NIL)
  401.  
  402.   WHILE res < 0
  403.     Wait(ghadd.sig)
  404.     res := guimessage(ghadd)
  405.   ENDWHILE
  406.   cleangui(ghadd)
  407.   unblockwin(gh)
  408.  
  409. ENDPROC
  410. PROC gad_add_def()
  411.  
  412. -> dodaj DEF_xxx
  413.  
  414.   blockwin(gh)
  415.   IF defsel.numitems() = NIL
  416.     defsel.add('DEFAULT3= Default tool for OS 3.0+')
  417.     defsel.add('DEFAULT= Default tool for OS 2.0+')
  418.     defsel.add('DEF_EXE= Default tool for executable files')
  419.     defsel.add('DEF_GFX= Default tool for graphics files')
  420.     defsel.add('DEF_IFF= Default tool for IFF files')
  421.     defsel.add('DEF_PACK= Default tool for packed files')
  422.     defsel.add('DEF_TEXT= Default tool for text files')
  423.     defsel.add('DEF_MUSIC= Default tool for music files')
  424.     defsel.add('DEF_SCRIPT= Default tool for scripts')
  425.     defsel.add('DEF_ENCRYPT= Default tool for crypted files')
  426.  ENDIF
  427.  
  428.   easyguiA('Select defaults',
  429.     [LISTV,{gad_select_def},'DEFAULT actions',37,10,defsel.addr(),FALSE,NIL,NIL]
  430.   )
  431.   unblockwin(gh)
  432.  
  433. ENDPROC
  434. PROC gad_add_fileid()
  435.  
  436. -> dodaj FileID type
  437.  
  438.   blockwin(gh)
  439.   IF fidsel.numitems() = NIL THEN getfileidlist()
  440.  
  441.   easyguiA('Select FileType',
  442.     [LISTV,{gad_select_fileid},'Available FileTypes',37,10,fidsel.addr(),FALSE,NIL,NIL]
  443.   )
  444.   StrCopy(cmdstr,'')
  445.   unblockwin(gh)
  446.  
  447. ENDPROC
  448.  
  449. PROC gad_datatype()
  450.  
  451.   gad_str(NIL,actgui,NIL,'DATATYPE')
  452.  
  453. ENDPROC
  454. PROC gad_del(kasuj,page,info)
  455.  
  456. #ifdef DEBUG
  457.   status('proc gad_del\n')
  458. #endif
  459.  
  460.   IF info > -1 THEN info := TRUE
  461.   SELECT page
  462.     CASE PAGE_FILEID
  463.       gad_delete(savgad1,fidnode,fidlist,info)
  464.     CASE PAGE_EXT
  465.       gad_delete(savgad2,extnode,extlist,info)
  466.     CASE PAGE_DEF
  467.       gad_delete(savgad3,defnode,deflist,info)
  468.     CASE PAGE_DT
  469.       gad_delete(savgad4,dtnode,dtlist,info)
  470.   ENDSELECT
  471.  
  472. ENDPROC
  473. PROC gad_delete(savegad,node : PTR TO stringnode,dc : PTR TO dclistview,kasuj = TRUE)
  474.  
  475. -> Odôwieûa Listview
  476.  
  477.   nochanged := FALSE
  478.   setdisabled(gh,savegad,FALSE)
  479.   current--
  480.   IF kasuj THEN node.del()
  481.   nodel()
  482.   dc.set(DCLV_CURRENT,-1)
  483.   dc.set(DCLV_TOP,current)
  484.   current := -1
  485.  
  486. ENDPROC
  487. PROC gad_getfile()
  488.  
  489.   filename := file_req(cmdstr)
  490.   gad_str(NIL,actgui,NIL,filename)
  491.  
  492. ENDPROC
  493. PROC gad_listv()
  494.  
  495.   DEF tmp[256] : STRING
  496.  
  497. #ifdef DEBUG
  498.   status('Procka gad_listv\n')
  499. #endif
  500.  
  501.   SELECT actgui
  502.     CASE PAGE_FILEID
  503.       gad_listview(fidnode,fidlist)
  504.       show_idstr()
  505.       MidStr(tmp,cmdstr,InStr(cmdstr,'=') + 1,ALL)
  506.       setstr(gh,strgad1,tmp)
  507.       setdisabled(gh,delgad1,FALSE)
  508.       setdisabled(gh,strgad1,FALSE)
  509.       setdisabled(gh,datgad1,FALSE)
  510.       setdisabled(gh,getgad1,FALSE)
  511.       IF aslok = 16 THEN setdisabled(gh,getgad1,TRUE)
  512.     CASE PAGE_EXT
  513.       gad_listview(extnode,extlist)
  514.       MidStr(tmp,cmdstr,InStr(cmdstr,'=')+1,ALL)
  515.       setstr(gh,strgad2,tmp)
  516.       setdisabled(gh,delgad2,FALSE)
  517.       setdisabled(gh,strgad2,FALSE)
  518.       setdisabled(gh,datgad2,FALSE)
  519.       setdisabled(gh,getgad2,FALSE)
  520.       IF aslok = 16 THEN setdisabled(gh,getgad2,TRUE)
  521.     CASE PAGE_DEF
  522.       gad_listview(defnode,deflist)
  523.       show_defstr()
  524.       MidStr(tmp,cmdstr,InStr(cmdstr,'=')+1,ALL)
  525.       setstr(gh,strgad3,tmp)
  526.       setdisabled(gh,delgad3,FALSE)
  527.       setdisabled(gh,strgad3,FALSE)
  528.       setdisabled(gh,datgad3,FALSE)
  529.       setdisabled(gh,getgad3,FALSE)
  530.       IF aslok = 16 THEN setdisabled(gh,getgad3,TRUE)
  531.     CASE PAGE_DT
  532.       gad_listview(dtnode,dtlist)
  533.       MidStr(tmp,cmdstr,InStr(cmdstr,'=')+1,ALL)
  534.       setstr(gh,strgad4,tmp)
  535.       setdisabled(gh,delgad4,FALSE)
  536.       setdisabled(gh,strgad4,FALSE)
  537.       setdisabled(gh,datgad4,FALSE)
  538.       setdisabled(gh,getgad4,FALSE)
  539.       IF aslok = 16 THEN setdisabled(gh,getgad4,TRUE)
  540.   ENDSELECT
  541. ENDPROC
  542. PROC gad_listview(node : PTR TO stringnode,dc : PTR TO dclistview)
  543.  
  544.   current,temp := dc.get(DCLV_CURRENT)
  545.   node.item(current)
  546.   StrCopy(cmdstr,node.obj())
  547.  
  548.   IF dc.get(DCLV_CLICK)
  549.     clicked()
  550.     nodel()
  551.     RETURN
  552.   ENDIF
  553.  
  554. ENDPROC
  555. PROC gad_save()
  556.  
  557.   DEF dobj : PTR TO diskobject,
  558.        success = FALSE,
  559.        lista[700] : LIST,
  560.        a = NIL,
  561.        b
  562.  
  563.   blockwin(gh)
  564.  
  565. #ifdef DEBUG
  566.   status('\nprocka gad_save\n')
  567.   StringF(str,'IconName -> \s\n',iconname)
  568.   status(str)
  569. #endif
  570.  
  571.   IF dobj := GetDiskObjectNew(iconname)
  572.  
  573. #ifdef DEBUG
  574.     status('Saving config...\n')
  575. #endif
  576.  
  577.     IF showinfo = FALSE
  578.       lista[a] := 'SHOWINFO=NO'
  579.       a++
  580.     ENDIF
  581.  
  582.     defnode.first()
  583.     FOR b := 0 TO defnode.numitems() - 1
  584.       defnode.item(b)
  585.       lista[a] := defnode.obj()
  586.       a++
  587.     ENDFOR
  588.  
  589.     fidnode.first()
  590.     FOR b := 0 TO fidnode.numitems() - 1
  591.       fidnode.item(b)
  592.       lista[a] := fidnode.obj()
  593.       a++
  594.     ENDFOR
  595.  
  596.     extnode.first()
  597.     FOR b := NIL TO extnode.numitems() - 1
  598.       extnode.item(b)
  599.       lista[a] := extnode.obj()
  600.       a++
  601.     ENDFOR
  602.  
  603.     dtnode.first()
  604.     FOR b := NIL TO dtnode.numitems() - 1
  605.       dtnode.item(b)
  606.       lista[a] := dtnode.obj()
  607.       a++
  608.     ENDFOR
  609.  
  610.     IF isnitt
  611.       FOR b := 0 TO newicon.numitems() - 1
  612.         newicon.item(b)
  613.         lista[a] := newicon.obj()
  614.         a++
  615.  
  616. #ifdef DEBUG
  617.       StringF(str,'NI -> \s\n',lista[a+b])
  618.       status(str)
  619. #endif
  620.  
  621.       ENDFOR
  622.     ENDIF
  623.  
  624.     lista[a] := NIL
  625.     dobj.tooltypes := lista
  626.     success := PutDiskObject(iconname,dobj)
  627.     FreeDiskObject(dobj)
  628.     nochanged := TRUE
  629.     set_save()
  630.   ENDIF
  631.   unblockwin(gh)
  632.  
  633. ENDPROC
  634.  
  635. PROC gad_select_dt(a,b,c,d)
  636.  
  637.   DEF tmp1[256] : STRING
  638.  
  639.   dtsel.item(d)
  640.   StringF(tmp1,'\s#?',dtsel.obj())
  641.  
  642.   a := dtnode.search(tmp1,FALSE)
  643.  
  644.   StringF(tmp1,'\s=',dtsel.obj())
  645.   IF a = FALSE
  646.     dtnode.add(tmp1)
  647.     gad_delete(savgad4,dtnode,dtlist,FALSE)
  648.   ENDIF
  649.  
  650. ENDPROC
  651. PROC gad_select_def(a,b,c,d)
  652.  
  653. -> dodawanie DEF_xxx - wybranie w oknie
  654.  
  655.   DEF tmp1[256] : STRING,
  656.       tmp2[256] : STRING
  657.  
  658.   defsel.item(d)
  659.   MidStr(tmp2,defsel.obj(),NIL,InStr(defsel.obj(),'=')+1)
  660.   StringF(tmp1,'#?\s#?',tmp2)
  661.  
  662.   a := defnode.search(tmp1,FALSE)
  663.  
  664.   StringF(tmp1,'\s=',tmp2)
  665.   IF a = FALSE
  666.     defnode.add(tmp1)
  667.     gad_delete(savgad3,defnode,deflist,FALSE)
  668.   ENDIF
  669.  
  670. ENDPROC
  671. PROC gad_select_fileid(a,b,c,d)
  672.  
  673.   DEF tmp1[256] : STRING,
  674.       tmp2[256] : STRING
  675.  
  676.   fidsel.item(d)
  677.   StrCopy(cmdstr,fidsel.obj())
  678.  
  679.   StringF(tmp1,'#?\s',cmdstr)
  680.   StrCopy(cmdstr,fidtemp.search(tmp1,FALSE))
  681.  
  682.   MidStr(tmp1,cmdstr,NIL,InStr(cmdstr,'=') + 1)
  683.   StringF(tmp2,'\s#?',tmp1)
  684.   
  685.   a := fidnode.search(tmp2,FALSE)
  686.  
  687.   IF a = FALSE
  688.     fidnode.add(tmp1)
  689.     gad_delete(savgad1,fidnode,fidlist,FALSE)
  690.   ENDIF
  691.  
  692. ENDPROC
  693.  
  694. PROC gad_str(a,page,info,str)
  695.  
  696. #ifdef DEBUG
  697.   status('proc gad_str\n')
  698. #endif
  699.   SELECT page
  700.     CASE PAGE_FILEID
  701.       wstawtext(str,fidnode,fidlist,savgad1)
  702.     CASE PAGE_EXT
  703.       wstawtext(str,extnode,extlist,savgad2)
  704.     CASE PAGE_DEF
  705.       wstawtext(str,defnode,deflist,savgad3)
  706.     CASE PAGE_DT
  707.       wstawtext(str,dtnode,dtlist,savgad4)
  708.   ENDSELECT
  709.  
  710. ENDPROC
  711. PROC gad_str_ext(a,b,c,str)
  712.  
  713.   DEF tmp1[256] : STRING
  714.  
  715.   StringF(tmp1,'\s=#?',str)
  716.  
  717.   a := extnode.search(tmp1,FALSE)
  718.   IF a = FALSE
  719.     StrAdd(str,'=')
  720.     extnode.add(str)
  721.     extlist.set(DCLV_CURRENT,-1)
  722.     extlist.set(DCLV_LIST,extnode.addr())
  723.     setstr(ghadd,extstr,'')
  724.     nochanged := FALSE
  725.     set_save()
  726.   ENDIF
  727.  
  728. ENDPROC
  729. PROC gad_tabs(gh,reg : PTR TO register_plugin)
  730.  
  731.   changepage(reg.get(PLA_Register_ActivePage))
  732.  
  733. ENDPROC
  734. PROC gad_quit()
  735.  
  736.   DEF ok = 1
  737.  
  738.   blockwin(gh)
  739.   IF nochanged = FALSE THEN ok := EasyRequestArgs(NIL,[20,NIL,'MultiView Preferences','Changes not saved.\n Really quit ?','Quit|Save ^ Quit|Cancel'],NIL,NIL)
  740.   SELECT ok
  741.     CASE 2
  742.       gad_save()
  743.       Raise(ERR_QUIT)
  744.     CASE 1
  745.       Raise(ERR_QUIT)
  746.   ENDSELECT
  747.   unblockwin(gh)
  748.  
  749. ENDPROC
  750.  
  751. PROC geticon(projname)
  752.  
  753.   DEF tmp[256] : STRING,
  754.       dobj : PTR TO diskobject,
  755.       oldtooltypes[700] : LIST,
  756.       mem,
  757.       a,
  758.       b
  759.  
  760. #ifdef DEBUG
  761.   status('\nproc geticon\n')
  762.   StringF(str,'IconName -> \s\n',iconname)
  763.   status(str)
  764. #endif
  765.  
  766.   IF fidnode.numitems()  > NIL THEN fidnode.clear()
  767.   IF newicon.numitems()  > NIL THEN newicon.clear()
  768.   IF defnode.numitems()  > NIL THEN defnode.clear()
  769.   IF extnode.numitems()  > NIL THEN extnode.clear()
  770.   IF dtnode.numitems()   > NIL THEN dtnode.clear()
  771.  
  772.   showinfo  := TRUE
  773.   nochanged := TRUE
  774.   isnitt    := FALSE
  775.  
  776.   IF dobj := GetDiskObject(projname)
  777.     oldtooltypes := dobj.tooltypes
  778.     IF oldtooltypes
  779.       mem := NIL
  780.       WHILE oldtooltypes[mem] <> NIL
  781.         StrCopy(tmp,oldtooltypes[mem])
  782.  
  783.   #ifdef DEBUG
  784.         StringF(str,'TT -> \s\n',tmp)
  785.         status(str)
  786.   #endif
  787.  
  788.         b := Val(tmp,NIL)
  789.  
  790. -> NewIcons
  791.  
  792.         IF InStr(tmp,'IM1=',0) > -1
  793.           isnitt := TRUE
  794.           a := newicon.add(tmp)
  795.         ELSEIF InStr(tmp,'IM2=',0) > -1
  796.           isnitt := TRUE
  797.           a := newicon.add(tmp)
  798.         ELSEIF InStr(tmp,'EDIT THE FOLLOWING LINES',0) > -1
  799.           isnitt := TRUE
  800.           a := newicon.add(tmp)
  801.         ELSEIF InStr(tmp,'DEFAULTIMAGE',0) > -1
  802.           isnitt := TRUE
  803.           a := newicon.add(tmp)
  804.  
  805.         ELSEIF b > NIL
  806.           a := fidnode.add(tmp)
  807.  
  808.         ELSEIF (InStr(tmp,'DEF') > -1) AND (InStr(tmp,'DEF') < 3)
  809.           a := defnode.add(tmp)
  810.         ELSEIF (InStr(tmp,'SHOWINFO') > -1) AND (InStr(tmp,'SHOWINFO') < 3)
  811.           IF (InStr(tmp,'SHOWINFO=NO') = 1)
  812.             showinfo := FALSE
  813.           ELSE
  814.             showinfo := TRUE
  815.           ENDIF
  816.  
  817.         ELSEIF StrCmp(tmp,'.',1)
  818.           a := extnode.add(tmp)
  819.         ELSEIF (InStr(tmp,'.') > -1) AND (InStr(tmp,'.') < 10)
  820.           a := extnode.add(tmp)
  821.  
  822.         ELSE
  823.           a := dtnode.add(tmp)
  824.         ENDIF
  825.         mem++
  826.  
  827.       ENDWHILE
  828.     ENDIF
  829.     FreeDiskObject(dobj)
  830.  ENDIF
  831.   IF gh
  832.     men_info()
  833.     gad_del(FALSE,actgui,FALSE)
  834.     nochanged := TRUE
  835.     set_save()
  836.   ENDIF
  837. ENDPROC
  838. PROC getfileidlist()
  839.  
  840.   DEF maxid,
  841.       id,
  842.       a
  843.  
  844.   IF fidtemp.numitems() <> NIL THEN fidtemp.clear()
  845.  
  846.   maxid := FiGetHighID()
  847.   FOR id := 1 TO maxid - 1
  848.     filename := FiGetIDString(id)
  849.     a := fidsel.add(filename)
  850.     StringF(cmdstr,'Reading... \z\r\d[3] -> \s',id,filename)
  851.     settext(gh,txtgad1,cmdstr)
  852.     StringF(cmdstr,'\z\r\d[3]=\s',id,filename)
  853.     a := fidtemp.add(cmdstr)
  854.   ENDFOR
  855.   settext(gh,txtgad1,'')
  856.   fidsel.sort()
  857.   StrCopy(filename,NIL)
  858.  
  859. ENDPROC
  860.  
  861. PROC show_idstr()
  862.  
  863.   DEF tmp[40] : STRING,
  864.       id
  865.  
  866. #ifdef DEBUG
  867.   status('procka show_idstr\n')
  868. #endif
  869.  
  870.   id := Val(cmdstr,NIL)
  871.   IF id = NIL
  872.     MidStr(tmp,cmdstr,1,5)
  873.     id := Val(tmp,NIL)
  874.     StrCopy(tmp,'')
  875.   ENDIF
  876.  
  877.   tmp := FiGetIDString(id)
  878.   settext(gh,txtgad1,tmp)
  879.  
  880. ENDPROC
  881. PROC show_defstr()
  882.  
  883.   DEF tmp[40] : STRING,
  884.       id
  885.  
  886.   id := InStr(cmdstr,'=')
  887.   MidStr(tmp,cmdstr,0,id)
  888.  
  889.   IF InStr(tmp,'DEFAULT3') <> -1
  890.     StrCopy(tmp,'DEFAULT tool for OS 3.0+')
  891.   ELSEIF InStr(tmp,'DEFAULT') <> -1
  892.     StrCopy(tmp,'DEFAULT tool for OS 2.0+')
  893.   ELSEIF InStr(tmp,'DEF_EXE') <> -1
  894.     StrCopy(tmp,'DEFAULT tool for executable files')
  895.   ELSEIF InStr(tmp,'DEF_TEXT')<> -1
  896.     StrCopy(tmp,'DEFAULT tool for text files')
  897.   ELSEIF InStr(tmp,'DEF_PACK') <> -1
  898.     StrCopy(tmp,'DEFAULT tool for packed files')
  899.   ELSEIF InStr(tmp,'DEF_ENCRYPT') <> -1
  900.     StrCopy(tmp,'DEFAULT tool for crypted files')
  901.   ELSEIF InStr(tmp,'DEF_IFF') <> -1
  902.     StrCopy(tmp,'DEFAULT tool for IFF files')
  903.   ELSEIF InStr(tmp,'DEF_SCRIPT') <> -1
  904.     StrCopy(tmp,'DEFAULT tool for scripts')
  905.   ELSEIF InStr(tmp,'DEF_GFX') <> -1
  906.     StrCopy(tmp,'DEFAULT tool for graphics files')
  907.   ELSEIF InStr(tmp,'DEF_MUSIC') <> -1
  908.     StrCopy(tmp,'DEFAULT tool for music files')
  909.   ELSEIF InStr(tmp,'SHOWINFO') <> -1
  910.     StrCopy(tmp,'Show file information switch (YES/NO)')
  911.   ELSE
  912.     StrCopy(tmp,'')
  913.     StrCopy(cmdstr,'')
  914.   ENDIF
  915.   settext(gh,txtgad3,tmp)
  916.  
  917. ENDPROC
  918.  
  919. PROC wstawtext(text,node : PTR TO stringnode,dc : PTR TO dclistview,savegad)
  920.  
  921.   DEF tmp[256] : STRING,
  922.       pos
  923.  
  924. #ifdef DEBUG
  925.   status('procka wstawtext\n')
  926.   status(text)
  927. #endif
  928.  
  929.   node.item(dc.get(DCLV_CURRENT))
  930.   pos := InStr(node.obj(),'=')
  931.   MidStr(tmp,node.obj(),0,pos)
  932.   StringF(cmdstr,'\s=\s',tmp,text)
  933.   node.change(cmdstr)
  934.   gad_delete(savegad,node,dc,FALSE)
  935.  
  936. ENDPROC
  937. PROC file_req(filename)
  938.  
  939.   DEF file,
  940.       suc,
  941.       path[256] : STRING
  942.  
  943.   blockwin(gh)
  944.  
  945.   IF aslbase
  946.  
  947.     file := FilePart(filename)
  948.     suc  := InStr(filename,file)
  949.     StrCopy(path,filename,suc)
  950.  
  951.     IF AslRequest(req,[ASLFR_INITIALFILE,file,
  952.                        ASLFR_INITIALDRAWER,path] )
  953.       StrCopy(filename,req.drawer,ALL)
  954.       AddPart(filename,req.file,256)
  955.     ELSE
  956.       unblockwin(gh)
  957.       RETURN FALSE
  958.     ENDIF
  959.   ENDIF
  960.  
  961.   unblockwin(gh)
  962.  
  963. ENDPROC filename
  964.  
  965. PROC men_open()
  966.  
  967.   DEF ok
  968.  
  969.   blockwin(gh)
  970.   IF nochanged = FALSE
  971.     ok := EasyRequestArgs(NIL,[20,NIL,'MultiView Preferences','Changes not saved.','Open|Save ^ Open|Cancel'],NIL,NIL)
  972.     SELECT ok
  973.       CASE 2
  974.         gad_save()
  975.       CASE 0
  976.         RETURN
  977.     ENDSELECT
  978.   ENDIF
  979.  
  980.   filename := file_req(iconname)
  981.   IF filename
  982.     StrCopy(iconname,filename)
  983.     IF InStr(iconname,'.info',0) = (StrLen(iconname) - 5) THEN cutext(iconname)
  984.     geticon(iconname)
  985.   ENDIF
  986.   unblockwin(gh)
  987.  
  988. ENDPROC
  989. PROC men_saveas()
  990.  
  991.  
  992. #ifdef DEBUG
  993.   status('SaveAs selected...\n')
  994.   StringF(str,'IconName -> \s\n',iconname)
  995.   status(str)
  996. #endif
  997.  
  998.   filename := file_req(iconname)
  999.   blockwin(gh)
  1000.   IF filename
  1001.     StrCopy(iconname,filename)
  1002.     IF InStr(iconname,'.info',0) = (StrLen(iconname) - 5) THEN cutext(iconname)
  1003.     gad_save()
  1004.   ENDIF
  1005.   unblockwin(gh)
  1006.  
  1007. ENDPROC
  1008. PROC men_info()
  1009.  
  1010.   IF showinfo
  1011.     showinfo := FALSE
  1012.     changemenus(gh,[NM_TITLE,0,'Project',    0 ,0,0,0,
  1013.          NM_ITEM, 0,'Open...',   'o',aslok,0,{men_open},
  1014.          NM_ITEM, 0,'Save',      's',0,0,{gad_save},
  1015.          NM_ITEM, 0,'Save As...','S',aslok,0,{men_saveas},
  1016.          NM_ITEM, 0,NM_BARLABEL,  0 ,0,0,0,
  1017.          NM_ITEM, 0,'About',     '?',0,0,{about},
  1018.          NM_ITEM, 0,NM_BARLABEL,  0 ,0,0,0,
  1019.          NM_ITEM, 0,'Quit',      'q',0,0,{gad_quit},
  1020.          NM_TITLE,0,'Settings',   0 ,0,0,0,
  1021.          NM_ITEM, 0,'Show Info', 'i',CHECKIT,0,{men_info},
  1022.          NM_ITEM, 0,NM_BARLABEL,  0 ,0,0,0,
  1023.          NM_ITEM, 0,'Sort lists','t',0,0,{men_sort},
  1024.          NM_END,  0,0,            0,0,0,0]:newmenu)
  1025.  
  1026.   ELSE
  1027.     showinfo := TRUE
  1028.     changemenus(gh,[NM_TITLE,0,'Project',    0 ,0,0,0,
  1029.          NM_ITEM, 0,'Open...',   'o',aslok,0,{men_open},
  1030.          NM_ITEM, 0,'Save',      's',0,0,{gad_save},
  1031.          NM_ITEM, 0,'Save As...','S',aslok,0,{men_saveas},
  1032.          NM_ITEM, 0,NM_BARLABEL,  0 ,0,0,0,
  1033.          NM_ITEM, 0,'About',     '?',0,0,{about},
  1034.          NM_ITEM, 0,NM_BARLABEL,  0 ,0,0,0,
  1035.          NM_ITEM, 0,'Quit',      'q',0,0,{gad_quit},
  1036.          NM_TITLE,0,'Settings',   0 ,0,0,0,
  1037.          NM_ITEM, 0,'Show Info', 'i',CHECKIT + CHECKED,0,{men_info},
  1038.          NM_ITEM, 0,NM_BARLABEL,  0 ,0,0,0,
  1039.          NM_ITEM, 0,'Sort lists','t',0,0,{men_sort},
  1040.          NM_END,  0,0,            0,0,0,0]:newmenu)
  1041.   ENDIF
  1042.   nochanged := FALSE
  1043.   set_save()
  1044. ENDPROC
  1045. PROC men_sort()
  1046.  
  1047.   blockwin(gh)
  1048.   sort_nodes()
  1049.   nochanged := FALSE
  1050.   set_save()
  1051.   nodel()
  1052.   unblockwin(gh)
  1053.  
  1054. ENDPROC
  1055.  
  1056. PROC cutext(filename)
  1057.  
  1058.   DEF temp[256] : STRING,
  1059.       pos
  1060.  
  1061.   temp[NIL] := NIL
  1062.   pos := StrLen(filename) - 1
  1063.   WHILE filename[pos] <> "."
  1064.     pos--
  1065.   ENDWHILE
  1066.   MidStr(temp,filename,NIL,pos)
  1067.   filename[NIL] := NIL
  1068.   StringF(filename,temp)
  1069.  
  1070. ENDPROC
  1071.  
  1072. PROC nodel()
  1073.  
  1074. #ifdef DEBUG
  1075.   WriteF('procka nodel\n')
  1076. #endif
  1077.  
  1078.   IF gh
  1079.     SELECT actgui
  1080.       CASE PAGE_FILEID
  1081.         setstr(gh,strgad1,'')
  1082.         settext(gh,txtgad1,'')
  1083.         setdisabled(gh,delgad1,TRUE)
  1084.         setdisabled(gh,strgad1,TRUE)
  1085.         setdisabled(gh,datgad1,TRUE)
  1086.         setdisabled(gh,getgad1,TRUE)
  1087.         fidlist.set(DCLV_LIST,fidnode.addr())
  1088.         fidlist.set(DCLV_TOP,current)
  1089.         fidlist.set(DCLV_CURRENT,current)
  1090.       CASE PAGE_EXT
  1091.         setstr(gh,strgad2,'')
  1092.         setdisabled(gh,delgad2,TRUE)
  1093.         setdisabled(gh,strgad2,TRUE)
  1094.         setdisabled(gh,datgad2,TRUE)
  1095.         setdisabled(gh,getgad2,TRUE)
  1096.         extlist.set(DCLV_LIST,extnode.addr())
  1097.         extlist.set(DCLV_TOP,current)
  1098.         extlist.set(DCLV_CURRENT,current)
  1099.       CASE PAGE_DEF
  1100.         setstr(gh,strgad3,'')
  1101.         settext(gh,txtgad3,'')
  1102.         setdisabled(gh,delgad3,TRUE)
  1103.         setdisabled(gh,strgad3,TRUE)
  1104.         setdisabled(gh,datgad3,TRUE)
  1105.         setdisabled(gh,getgad3,TRUE)
  1106.         deflist.set(DCLV_LIST,defnode.addr())
  1107.         deflist.set(DCLV_TOP,current)
  1108.         deflist.set(DCLV_CURRENT,current)
  1109.       CASE PAGE_DT
  1110.         setstr(gh,strgad4,'')
  1111.         setdisabled(gh,delgad4,TRUE)
  1112.         setdisabled(gh,strgad4,TRUE)
  1113.         setdisabled(gh,datgad4,TRUE)
  1114.         setdisabled(gh,getgad4,TRUE)
  1115.         dtlist.set(DCLV_LIST,dtnode.addr())
  1116.         dtlist.set(DCLV_TOP,current)
  1117.         dtlist.set(DCLV_CURRENT,current)
  1118.     ENDSELECT
  1119.     StrCopy(cmdstr,'')
  1120.   ENDIF
  1121.  
  1122. ENDPROC
  1123. PROC clicked()
  1124.  
  1125. DEF tmp[256] : STRING
  1126.  
  1127.  
  1128.   IF InStr(cmdstr,'(',NIL) > -1
  1129.     IF InStr(cmdstr,')',StrLen(cmdstr)-1) > -1
  1130.       MidStr(tmp,cmdstr,1,StrLen(cmdstr)-2)
  1131.     ENDIF
  1132.   ELSE
  1133.     StringF(tmp,'(\s)',cmdstr)
  1134.   ENDIF
  1135.   nochanged := FALSE
  1136.  
  1137.   SELECT actgui
  1138.     CASE PAGE_FILEID
  1139.       fidnode.change(tmp)
  1140.       setdisabled(gh,savgad1,FALSE)
  1141.       fidlist.set(DCLV_LIST,fidnode.addr())
  1142.     CASE PAGE_EXT
  1143.       extnode.change(tmp)
  1144.       setdisabled(gh,savgad2,FALSE)
  1145.       extlist.set(DCLV_LIST,extnode.addr())
  1146.     CASE PAGE_DEF
  1147.       defnode.change(tmp)
  1148.       setdisabled(gh,savgad3,FALSE)
  1149.       deflist.set(DCLV_LIST,defnode.addr())
  1150.     CASE PAGE_DT
  1151.       dtnode.change(tmp)
  1152.       setdisabled(gh,savgad4,FALSE)
  1153.       dtlist.set(DCLV_LIST,dtnode.addr())
  1154.   ENDSELECT
  1155.  
  1156. ENDPROC
  1157.  
  1158. PROC set_save()
  1159.  
  1160.   SELECT actgui
  1161.     CASE PAGE_FILEID
  1162.       setdisabled(gh,savgad1,nochanged)
  1163.     CASE PAGE_EXT
  1164.       setdisabled(gh,savgad2,nochanged)
  1165.     CASE PAGE_DEF
  1166.       setdisabled(gh,savgad3,nochanged)
  1167.     CASE PAGE_DT
  1168.       setdisabled(gh,savgad4,nochanged)
  1169.   ENDSELECT
  1170.  
  1171. ENDPROC
  1172.  
  1173. PROC sort_nodes()
  1174.  
  1175.   fidnode.sort(FALSE,FALSE)
  1176.   extnode.sort(FALSE,FALSE)
  1177.   defnode.sort(FALSE,FALSE)
  1178.   dtnode.sort()
  1179.  
  1180. ENDPROC
  1181.  
  1182. PROC key_left()
  1183.   IF actgui > 0 THEN changepage(actgui - 1)
  1184. ENDPROC
  1185. PROC key_right()
  1186.   IF actgui < 3 THEN changepage(actgui + 1)
  1187. ENDPROC
  1188. PROC changepage(page)
  1189.  
  1190.   current := -1
  1191.   reg.set(PLA_Register_ActivePage,page)
  1192.   changegui(gh,guilist[page])
  1193.   actgui := page
  1194.   nodel()
  1195.   IF aslok = 16
  1196.     SELECT actgui
  1197.       CASE PAGE_FILEID
  1198.         setdisabled(gh,getgad1,TRUE)
  1199.       CASE PAGE_EXT
  1200.         setdisabled(gh,getgad2,TRUE)
  1201.       CASE PAGE_DEF
  1202.         setdisabled(gh,getgad3,TRUE)
  1203.       CASE PAGE_DT
  1204.         setdisabled(gh,getgad4,TRUE)
  1205.     ENDSELECT
  1206.   ENDIF
  1207.   set_save()
  1208.  
  1209. ENDPROC
  1210.  
  1211.  
  1212. #ifdef DEBUG
  1213. PROC status(text)
  1214.  
  1215.  WriteF('MV Status : \s',text)
  1216.  
  1217. ENDPROC
  1218. #endif
  1219.  
  1220.